package agencia;



public class PaqueteEstandar extends Paquete {
	private int categoria;
	private int cantidadPasajerosMinima;
	
	
	private int getCantidadPasajerosMinima() {
		return cantidadPasajerosMinima;
	}
	private void setCantidadPasajerosMinima(int cantidadPasajerosMinima) {
		this.cantidadPasajerosMinima = cantidadPasajerosMinima;
	}
	private int getCategoria() {
		return categoria;
	}
	private void setCategoria(int categoria) {
		this.categoria = categoria;
	}
	public void determinarCategoria(int categoria){
		this.setCategoria(categoria);
	}
	public int recuperarCategoria(){
		return getCategoria();
	}
	public void determinarCantidadPasajerosMinima(int cantidadPasajerosMinima){
		this.setCantidadPasajerosMinima(cantidadPasajerosMinima);
	}
	public int recuperarCantidadPasajerosMinima(){
		return this.getCantidadPasajerosMinima();
	}
	
	public void agregarHotelPaquete(ReservaHotelPaquete hotelPaquete) throws Error{
		
		if (hotelPaquete.getHotel().getCategoria()==this.getCategoria()){
			//TODO Falta agregar validacion de fechas
			this.agregarHotel(hotelPaquete);
		}else{
			Error e = new Error("La categoria del hotel no corresponde con la categoria del paquete. Hotel: "+hotelPaquete.getHotel().getCategoria()+" Paquete: "+this.getCategoria());
			throw e;
		}
	}
	public double determinarPrecio(){
		return ( precio.getPrecioExcursiones() + precio.getPrecioHoteles() + precio.getPrecioVuelos() );
	}
}
